The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the inventors hereof, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
The disclosed technology relates to communication systems, and more particularly, to performing successive interference cancellation (SIC) in multiple input multiple output (MIMO) systems with retransmissions.
In a data transmission system, it is desirable for information, often grouped into packets, to be accurately received at a destination. A transmitter at or near the source sends the information provided by the source via a signal or signal vector. A receiver at or near the destination processes the signal sent by the transmitter. The medium, or media, between the transmitter and receiver, through which the information is sent, may corrupt the signal such that the receiver is unable to correctly reconstruct the transmitted information. Therefore, given a transmission medium, sufficient reliability is obtained through careful design of the transmitter and/or receiver, and of their respective components.
However, the transmitter may be unaware of how the channel will affect a transmitted signal, and may not be able to transmit information in a way that will be effective for a particular channel. For example, the transmitter may be a wireless router, where the channel varies depending on its surroundings. One technique to increase reliability when the transmitter does not have information about the channel is to use an error correction scheme. An error correction scheme functions by adding redundancy to the transmitted information. Therefore, when a reasonably small number of errors occurs, there is still enough information to make an accurate determination of the transmitted sequence. The redundancy added to the transmitted information is determined based on an error correction code, such as a Reed-Solomon or Golay code.
One straightforward way to implement an error correction scheme is to use forward error correction (FEC). The transmitter encodes the data according to an error correction code and transmits the encoded information. Upon reception of the data, the receiver decodes the data using the same error correction code, ideally eliminating any errors. Therefore, “decoding” is hereinafter referred to as a method for producing an estimate of the transmitted sequence in any suitable form (e.g., a binary sequence, a sequence of probabilities, etc).
Another way to implement a code for error correction is to use automatic repeat request (ARQ). Unlike FEC, ARQ schemes use error-detecting rather than error-correcting codes. The ARQ transmitter encodes data based on an error-detecting code, such as a cyclic redundancy check (CRC) code. After decoding the data based on the error-detecting code, if an error is detected, the receiver sends a request to the transmitter to retransmit that codeword. Thus, ARQ protocols require a forward channel for communication from transmitter to receiver and a back channel for communication from receiver to transmitter. Ultimately, the receiver will not accept a packet of data until there are no errors detected in the packet.
Finally, FEC and ARQ may be combined into what is known as hybrid automatic repeat request (HARQ). One type of HARQ, referred to as HARQ type-I, typically uses a code that is capable of both error-correction and error-detection. For example, a codeword may be constructed by first protecting the message with an error-detecting code, such as a CRC code, and then further encoding the CRC-protected message with an error-correcting code, such as a Reed-Solomon, Golay, convolutional, turbo, or low-density parity check (LDPC) code. When the receiver receives such a code, it first attempts FEC by decoding the error correction code. If, after error detection, there are still errors present, the receiver will request a retransmission of that packet. Otherwise, it accepts the received vector.
HARQ type-II and type-III are different from HARQ type-I, because the data sent on retransmissions of a packet are not the same as the data that was sent originally. HARQ type-II and type-III utilize incremental redundancy (IR HARQ) in successive retransmissions. That is, the first transmission uses a code with low redundancy. The code rate of a code is defined as the proportion of bits in the vector that carry information and is a metric for determining the throughput of the information. Therefore, the low redundancy code used for the first transmission of a packet has a high code rate, or throughput, but is less powerful at correcting errors. If errors are detected in the first packet, the second transmission is used to increase the redundancy, and therefore the error correcting capability, of the code. For example, if the first transmission uses a code with a code rate of 0.80, a retransmission may add enough extra redundancy to reduce the overall code rate to 0.70. The redundancy of the code may be increased by transmitting extra parity bits or by retransmitting a subset of the bits from the original transmission. If each retransmission can be decoded by itself, the system is HARQ type-III. Otherwise, the system is HARQ type-II.
Successive interference cancellation (SIC) is another technique for improving the performance of a data transmission system. According to this technique, a received codeword that is associated with strong channel conditions is decoded before other codewords that are associated with weak channel conditions. Effects of the decoded codeword are subtracted from a received signal vector to eliminate interference due to the decoded codeword from the other codewords. In this way, the other codewords may experience less interference and are able to achieve a higher Signal-to-Noise Ratio (SNR) than without interference cancellation.
The order in which codewords are decoded may have an important impact on the SIC performance. Conventional SIC methods decode codewords in an order that is based on channel parameters (e.g., channel quality) associated with each received codeword at the receiving time only. However, the channel quality may change over multiple transmission attempts of the same codeword.